1. Field of the Invention
The present invention relates to software development tools, in particular to software conversion tools.
2. State of the Art
Software development is a time-consuming and laborious process. Maintaining and reworking previously-written software is at least equally laborious. Many times a need will arise to convert programs written to run in one software environment (i.e., written to interface to one system) to a form that will run in another different software environment. Such a conversion requires finding all language elements in the programs which refer to the old system and replacing them with language elements that refer to the new system. If the programs are large, including several hundreds of thousands or even a million or more lines of code, performing such a conversion manually is an enormous task. Clearly, it is desirable to devise a machine-assisted method of performing such a conversion.
Unfortunately, a simple "search and replace" strategy, in which every occurrence of a specified text string is replaced with a different specified text string, is too simple to provide useful results. In computer languages as in natural languages, the meaning of a particular language element is heavily context-dependent. Sometimes, for example, a local version of a name may appear. Replacing the local version of a name with a global new name results in a program that will not run or will not run correctly.
Therefore, there exists a need for a software tool that automates, to the greatest extent possible, software conversions of the type described.